A Universal Asynchronous Receiver/Transmitter (or UART) is an integrated solution used on almost every asynchronous serial system. The UART is responsible for implementing the asynchronous communication process as both a transmitter and a receiver (both encoding and decoding data frames). The UART not only controls the transfer of data, but the speed at which communication takes place.
The first UARTs could only handle one byte of information at a time, which meant that the computer's processor needed to immediately process any transmission or risk losing data as the next byte of information pushed its way onto the UART. Not only did this make for unreliable and slow communication, it placed unreasonable demands on the processor, slowing down the entire system.
Improved UARTs, such as the 16750 UARTs, increase communication speed and lower system overhead by offering 64-byte or 128-byte FIFOs (first in first out buffers). With the increased FIFO buffer size, the UART can store enough information that the data stream need not be suspended while the processor is busy. This is particularly helpful in multitasking operating systems such as Windows 2000/XP. Still, the processor has to periodically poll the UART to see if there is any data to be read, or receive and respond to an interrupt from the UART, with the overhead associated with interrupt processing.
In addition, computer systems spend a lot of the available CPU horsepower in scanning incoming data for special values that need special processing, and in transferring the characters to their destination within the computer.
What is needed is a system and method for speeding the transfer of data into and out of a computer system. In addition, what is needed is a system and method for reducing the demand on the processor in transferring data to and from a UART.